<?php

/**
 * 记录日志
 * @param string $log
 */
function debug ($log){
    Think\Log::record($log);
}

/**
 * 自动填充日期时间
 * @return bool|string
 */
function auto_datetime(){
    return date(C('FORMAT.DATETIME'));
}

/**
 * 自动填充日期
 * @return bool|string
 */
function auto_date(){
    return date(C('FORMAT.DATE'));
}

/**
 * 当字段值不存在时，自动填充默认值
 * @param mixed $val 自动输送的data的值
 * @param string $field 当前字段
 * @return bool|string
 */
function auto_val($val, $field){
    return isset($_POST[$field]) ? I('post.'.$field) : $val;
}

/**
 * 当前登录用户
 */
function auto_login(){
    return current_user('id');
}

/**
 * 租户ID
 */
function auto_tnt(){
    if(defined("TNT_ID")) return TNT_ID;
    return 0;
}

/**
 * 当前用户的登录信息
 * @param string|boolean $field=id 要返回的字段，true则返回数组
 * @return bool|mixed 返回的数据，没有登录则为false
 */
function current_user($field='id'){
    $user = session('user');
    if(!$user) return false;

    if($field === true) return $user;

    return $user[$field];
}

/**
 * 获取服务器地址
 * @param string $url=''
 * @return string
 */
function full_url($url=''){
    $server = C('HTTP_SERVER');
    return 'http://'. ($server ? $server : $_SERVER["HTTP_HOST"]). $url;
}

/**
 * Provides functionality for array_column() to projects using PHP earlier than
 * version 5.5.
 */
if (!function_exists('array_column')) {
    function array_column(array $array, $columnKey, $indexKey = null)
    {
        $result = array();
        foreach ($array as $subArray) {
            if (!is_array($subArray)) {
                continue;
            } elseif (is_null($indexKey) && array_key_exists($columnKey, $subArray)) {
                $result[] = $subArray[$columnKey];
            } elseif (array_key_exists($indexKey, $subArray)) {
                if (is_null($columnKey)) {
                    $result[$subArray[$indexKey]] = $subArray;
                } elseif (array_key_exists($columnKey, $subArray)) {
                    $result[$subArray[$indexKey]] = $subArray[$columnKey];
                }
            }
        }
        return $result;
    }
}

if (!function_exists('getallheaders')) {
    function getallheaders() {
        $headers = array();
        foreach ($_SERVER as $name => $value) {
            if (substr($name, 0, 5) == 'HTTP_') {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }
}